Release Notes 9.2.0
🐞 Voter log errors
Username is different for voter logs generated by keycloak and by windmill (one is the username and the other the email address).
- Issue: #8097
🐞 Admin Portal > Sidebar: Can't select active events tab if all Events are archived
If all existing Election Events are archived and you click on the "Active" tab of the Admin Portal sidebar, it goes back to the Archived tab automatically.
- Issue: #8876
🐞 Default Invalid vote policy mismatch
The default Invalid Vote Policy was different in the backend and the front-end.
As a result, the UI displayed the policy as warn-explicit-and-implicit, even
though the actual default (when not predefined) was allowed.
- Issue: #8855
🐞 Can't see Election Lists
Due to a recent change, a bug was introduced that hid Candidate Lists in the Voting Portal.
- Issue #8735
🐞 Admin Portal > "Something went wrong" error when switching between diferent elections/questions
Prevent error when switching between elections on the "Data" tab by safely handling an undefined record.
- Issue: #8725
🐞 Failed scheduled event
Scheduled events and reports were being executed multiple times due to a timing mismatch between the beat scheduler's polling interval (10 seconds by default) and the look-ahead window used by the tasks (hardcoded to 60 seconds). This caused the same events/reports within the 60-second window to be repeatedly discovered and queued on each 10-second poll.
The fix passes the configured schedule interval (schedule_events_interval and schedule_reports_interval) from the beat to the task functions, which now use it as their look-ahead window instead of the hardcoded 60 seconds, ensuring each scheduled item is processed exactly once.
Also now admin users can schedule start/stop election events, as for those cases selecting an election is not required.
🐞 Investigate rabbitmq issues
The Electoral Log Windmill maintains a RabbitMQ connection, but sometimes it gets disconnected and Windmill didn't try reconnecting. Moreover, the probe didn't check the connection status. This fixes the issue by checking the connection status and reconnecting if necessary and checking the status of the connection in the probe.
- Issue #8626
🐞 Can't export voters list
In specific cases of Election Events with hundreds of areas and elections and millions of voters, exporting voters failed because of an issue with logging a specific function.
- Issue #8622
🐞 Admin Portal > Tally > Actions Popup Menu doesn't close after click
Within the Results & Participation section of the Tally tab of the Admin
Portal, when clicking in some action item inside the Actions Popup Menu for
Elections, the Popup Menu didn't automatically close and also in some cases it
moved to the bottom right corner.
- Issue: #8614
🐞 Admin Portal > Import Election Event: Password Dialog doesn't auto focus
When importing an election event that is encrypted, a dialog pops up asking for the password. But the password field doesn't autofocus so the admin user has to click on it.
Additionally, when an error is shown in the import election event dialog, it will reappear when closing and reopening the import drawer.
- Issue: #8613
🐞 Keycloak Election ids are not filtered by area
When a voter logs in and the voter is not assigned any election, keycloak adds all election ids to the header. However only some election ids are actually related to the user area and only those should be included.
- Issue: #8593
🐞 Keycloak: Redirect To Registration Authenticator doesn't work when http-relative-path is set
Keycloak: Redirect authenticator doesn't work when http-relative-path is set.
The reason is that the http-relative-path is set twice, /auth appears twice in
the URL.
- Issue: #8574
🐞 Keycloak: Deferred authenticator in Login mode ask for password confirmation
When using the Deferred Authenticator in Login mode, it was asking for password confirmation and it was not checking that the password matches that of the user.
- Issue: #7585
## 🐞 Voting Portal: Invalid/BlankVote Candidates do not follow sort order
Voting Portal: Invalid/BlankVote Candidates do not follow sort order within the top/bottom invalid candidates block.
- Issue: #8528
🐞 Invalid Vote Position was not configurable in Admin Portal > Candidate
Added Invalid Vote Position configuration in Admin Portal > Candidate. This was already in the backend, but it was not configurable in the Admin Portal.
- Issue: #8528
## 🐞 Admin Portal > Sidebar: Fix left and right margins in tenant & election event actions
- Issue: #8527
✨ Automatically generate tally documents after tally finishes
Added a post tally task that renders all the html reports to pdf. The pdfs are included into the event tar.gz file that can be downloaded from the Tally results page in Admin portal.
- Issue: #7948
🐞 Inconsistencies in Voting Portal
Removed inconsistencies and bugs when selecting candidates, explicit blank, null votes, undervotes, overvotes and with single/multi-contest encoding.
- Issue: #8235
✨ Standarize "Overseas voters turnout"
Rename report to "Voters Turnout" and remove "Overseas", "OV" or other non standard terminology from the report, admin portal and source code. Create documents and tutorials about the voters tab, adding User Attributes to keycloak, or how to create reports and templates.
- Issue: #7532
🐞 Tally shows as an Admin 1 election but as a Trustee it shows 2 elections
At the trustees tally ceremony, all elections were fetched instead of only those selected to participate in the tally.
- Issue: #7584
✨ Move release notes to Docusaurus
Moved developer release notes to Docusaurus. Updated release notes for various
existing versions, v8.7.5, v8.7.6, v9.1.0 and v9.1.1.
🐞 Velvet test errors
A failing velvet test was identified due to a recent change: ballots exceeding the maximum allowed votes are now classified as invalid. Since this behavior was not previously enforced, the corresponding test required an update.
- Issue: #8526
✨ Early voting for child areas
Add per-area Early Voting policy with UI checkbox (allowed only if the Election Event allows the EARLY_VOTING channel) and adapt import/export/upsert support. Backend now stores EarlyVotingPolicy and area presentation; publications use area_presentation on BallotStyle. EARLY_VOTING can be allowed and started at event level, its lifecycle is governed by Online (auto-closes on Online start/close; cannot start after Online begins), while Kiosk remains independent. Publish UI consolidates per-channel actions in a dropdown for every start/pause/stop button; Voting Portal and Harvest endpoints honor early voting only for voters in enabled areas when the channel is started.
- Issue: #7681
✨ Improve Dashboard print look
Improve the election event/election dashboard so that all necessary data (statistics) are displayed correctly in print mode.
- Issue: #7534
✨ Weighted voting for areas
Added a new election event policy at EVENT > DATA > Advanced configurations: Weighted voting policy.
When the policy is set to Weighted Voting for Areas, it allows assigning a weight
to each area. Tally results will then be calculated based on these weights,
which are taken from the ballot style of each area defined at publication.
- Issue: #7682
✨ Electoral results charts/visualization
Added Charts in the Admin Portal's Tally Results below the data tables to display the General Information, Participation Results and Candidate Results.
- Issue: #7531
🐞 Windmill > Can't create Ballot Images on ARM
The correct version of java jvm for the container architecture is installed instead of just defaulting to installing x86-x64 version.
- Issue: #8621
🐞 Contest result extended metrics are 0
Fixes the extended metrics calculation that is visible in the json file of the
tally result files in velvet-generate-reports.
It contains the value of some election metrics.
- Issue: #8573